#ifndef  VECTOR_H_
#define VECTOR_H_
#include<iostream>
#include<assert.h>
#include<string.h>
#define DEBUG
namespace myv{
    template<class T>
    class Vector
    {
    private:
        T* _start; // 首元素地址
        T* _finish; // 最后一个元素的地址
        T* _endOfStorage; // 空间的尾地址

    public:
        // 构造函数
        Vector();

        // 复制构造函数
		Vector( Vector<T>& v);

        // 析构函数
        ~Vector();

        // const表示只读函数，不会改变属性的值。
        // 数据大小
        size_t size() const;

        // 空间大小
        size_t capacity() const;

        // 扩容
        void expand(size_t n);

        // 插入元素
        void push_back(const T& t);

        // 弹出元素
        void pop_back();

        // 查找元素
        T at(size_t pos);

        // 操作符[]重载，访问vector元素
        T& operator[](size_t pos);

        // 清空元素
        void clear();
    };
}
#endif